package dfl.bysj.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import dfl.bysj.entity.HonestGrade;
import dfl.bysj.entity.StudentSeatRelation;
import com.baomidou.mybatisplus.extension.service.IService;
import dfl.bysj.entity.VO.ReserveSUCCVO;
import dfl.bysj.entity.VO.ReserveVO;
import dfl.bysj.entity.VO.SeatStateVO;
import dfl.bysj.entity.VO.SeatStudentDetailVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author DFL
 * @since 2022-04-26
 */
public interface StudentSeatRelationService extends IService<StudentSeatRelation> {

    ReserveSUCCVO reserve(ReserveVO reserveVO);

    StudentSeatRelation getStudentSeatRealation(Integer stuId, boolean b);

    HonestGrade signLost(StudentSeatRelation s);


    HonestGrade signBackLost(StudentSeatRelation s);

    List<StudentSeatRelation> getRelationTodayAndOverTimeCheck();

    ReserveSUCCVO getReserveSUCCByToken(Integer stuId);

    HonestGrade cancelSign(Integer stuSeaId, Integer stuUseId);

    void sign(String seaId, String stuSeaId);

    void signback(String seaId, String stuSeaId) throws InterruptedException;

    List<ReserveSUCCVO> getAllReserveSUCCByStuSeaId(String stuUseId);

    List<SeatStudentDetailVO> getReserveSUCCBySeaStaId(String seaStaId, String resStartTime);

    List<SeatStateVO> getALLSeatStateVO(Integer resTimeId);

    List<ReserveSUCCVO> getAllReserveSUCCByStuId(int stuId);

    void powerCancel(String stuUseId) throws InterruptedException;

    List<StudentSeatRelation> getAllSeatStateByStuUseId(QueryWrapper<StudentSeatRelation> eq);


//    void releaseSeat(Integer stuSeaId);
}
